/**
 * Description:
 * Class Name:StaticInnerClassTest
 * Date:2022/2/9 15:36
 *
 * @author LTisme
 * @version JAVA17
 */
package 疯狂Java讲义.第6章_面向对象_下._6_7_内部类.静态内部类;

public class StaticInnerClassTest {
    private int prop1 = 5;
    private static int prop2 = 9;
    static class StaticInnerClass{
        // 静态内部类里可以包含静态成员，和非静态成员，就跟一个正常的类一样
        private int height;
        public void accessOuterProp(){
            // 下面代码将出现错误————static静态内部类无法访问外部类的实例变量————这是根据静态成员不能访问非静态成员的原则
//            System.out.println(prop1);
            // 但可以通过创建实例来访问外部类的实例变量
            System.out.println(new StaticInnerClassTest().prop1);
            // 访问内部类自己的实例变量则可以正常访问
            System.out.println(this.height);
            System.out.println(height);
            // 下面的代码则正常
            System.out.println(prop2);
        }
    }
}
